<?xml version="1.0" ?>
<lz:project xmlns:lz="http://schemas.icitadel.com/Lazarus/Source.xsd"
	name="Lazarus" namespace="OR.Lazarus" owner="dbo" user="jmuharsky" namespaceprefix="lz" namespaceuri="http://schemas.icitadel.com/Lazarus/Source.xsd" businessconcept="Source">
	<lz:description>Lazarus Model</lz:description>
	<lz:datasource location="WARREN" schema="Lazarus" user="gkirrel" password="hcccc.be1" />
	<lz:defaults>
		<lz:fields>
			<lz:field name="Name" alias="name" type="Varchar" size="100">
				<lz:description>Specifies a unique name for the entity.</lz:description>
				<lz:indexes>
					<lz:index type="Primary" />
				</lz:indexes>
			</lz:field>
			<lz:field name="Description" alias="description" type="Text">
				<lz:description>Provides a long-text description for the entity.</lz:description>
			</lz:field>
		</lz:fields>
	</lz:defaults>
	<lz:objects>
	
		<lz:object name="Project" alias="project">
			<lz:description>Defines a single group of related components and structures.</lz:description>
			<lz:fields>
				<lz:field name="Owner" alias="owner" type="Varchar" size="255">
					<lz:description>Defines the owner of the project.  This is current used for some SQL Script generation.  Ex: dbo.</lz:description>
				</lz:field>
				<lz:field name="User" alias="user" type="Varchar" size="255">
					<lz:description>Specifies the user to be used in DDL statement calls.  This is used as the Database username.</lz:description>
				</lz:field>
				<lz:field name="DefaultNamespace" alias="namespace" type="Varchar" size="255">
					<lz:description>Defines the Default Namespace for the project.  This is used in languages such as Java and .NET.</lz:description>
				</lz:field>
				<lz:field name="NamespacePrefix" alias="namespaceprefix" type="Varchar" size="255">
					<lz:description>The NamespacePrefix defines the namespace identifier for use in XML and XSD files.</lz:description>
				</lz:field>
				<lz:field name="NamespaceURI" alias="namespaceuri" type="Varchar" size="255">
					<lz:description>The NamespaceURI specifies the xml Uniform Resource Identifier (URI) to be referenced in XML and XSD calls.</lz:description>
				</lz:field>
				<lz:field name="BusinessConcept" alias="businessconcept" type="Varchar" size="255">
					<lz:description>Defines a concept name for the Project, when it is part of a collection of project under a single namespace.  This is presently used to support Lazarus self-generation, until Business Views become supported.</lz:description>
				</lz:field>
				<lz:field name="DefaultSetting" alias="defaults" >
					<lz:indexes>
						<lz:index type="Foreign" object="DefaultSetting" accessor="Defaults" />
					</lz:indexes>
				</lz:field>
				<lz:field name="DataSource" alias="datasource">
					<lz:indexes>
						<lz:index type="Foreign" object="DataSource" accessor="DataSource" />
					</lz:indexes>
				</lz:field>
				<lz:field name="Security" alias="security" >
					<lz:indexes>
						<lz:index type="Foreign" object="Security" accessor="security" />
					</lz:indexes>
				</lz:field>
			</lz:fields>
			<lz:collections>
				<lz:collection name="Objects" object="Object" />
				<lz:collection name="Intersections" object="Intersection" />
				<lz:collection name="BusinessViews" object="BusinessView" />
				<lz:collection name="Packages" object="Package" />
			</lz:collections>
		</lz:object>

		<lz:object name="DefaultSetting" alias="defaultsetting">
			<lz:description>Describes fields that will be included in all entities.</lz:description>
			<lz:collections>
				<lz:collection name="Fields" object="Field" />
			</lz:collections>
		</lz:object>

		<lz:object name="DataSource" alias="datasource">
			<lz:description>Describes a connection to a data source.  This is typically a transactional database.</lz:description>
			<lz:fields>
				<lz:field name="Location" alias="location" type="Varchar" size="255">
					<lz:description>Specifies the server, machine or cluster name that the datasource resides on.</lz:description>
				</lz:field>
				<lz:field name="Schema" alias="schema" type="Varchar" size="255">
					<lz:description>Defines the database instance or schema for the datasource.</lz:description>
				</lz:field>
				<lz:field name="User" alias="user" type="Varchar" size="255">
					<lz:description>Specifies the user name for connections to the datasource.</lz:description>
				</lz:field>
				<lz:field name="Password" alias="password" type="Varchar" size="255">
					<lz:description>Specifies the password to be used in connections to the datasource.</lz:description>
				</lz:field>
			</lz:fields>
		</lz:object>

		<!-- Security System -->
		<lz:object name="Security" alias="security">
			<lz:description>Defines the roles and users in the system.</lz:description>
			<lz:collections>
				<lz:collection name="Roles" object="Role" />
				<lz:collection name="Users" object="User" />
			</lz:collections>
		</lz:object>

		<lz:object name="Permission" alias="permission">
			<lz:description>Defines a set of capabilities allowed to a role.</lz:description>
			<lz:fields>
				<lz:field name="Role" alias="role" type="Varchar" size="100" />
			</lz:fields>
			<lz:collections>
				<lz:collection name="Capabilities" object="Capability" />
			</lz:collections>
		</lz:object>

		<lz:object name="Capability" alias="capability">
			<lz:description>Defines a specific capability granted in a permission.</lz:description>
		</lz:object>

		<lz:object name="Role" alias="role">
			<lz:description>Defines a specific role, which may be a database-internal role, or a Windows Security Group.</lz:description>
			<lz:fields>
				<lz:field name="Type" alias="role-type" type="Varchar" size="255">
					<lz:description>Defines the type of Roles allowed in the system.</lz:description>
				</lz:field>
			</lz:fields>
		</lz:object>

		<lz:object name="User" alias="user">
			<lz:description>Defines a user, which may be a database-internal user, or a Windows Security User.  As user may be a member of many roles.</lz:description>
			<lz:fields>
				<lz:field name="Type" alias="user-type" type="Varchar" size="255">
					<lz:description>Defines the type of user.  Possible values are Internal and Windows.  Internal users belong to the specific Database, while	Windows users are Domain or Active Directory logins.</lz:description>
				</lz:field>
				<lz:field name="Password" alias="password" type="Varchar" size="255">
					<lz:description>Defines the password for the user.</lz:description>
				</lz:field>
			</lz:fields>
			<lz:collections>
				<lz:collection name="Roles" object="Role" />
			</lz:collections>
		</lz:object>
		<!-- End Security System -->

		<!-- Object System -->		
		<lz:object name="Object" alias="object" title-field="Name">
			<lz:description>Defines a class, with fields and methods.</lz:description>
			<lz:fields>
				<lz:field name="Alias" alias="alias" type="Varchar" size="255">
					<lz:description>The object's alias represents its name for use in XML representations.  It defaults to the lowercase representation of the Name.</lz:description>
				</lz:field>
				<lz:field name="FriendlyName" alias="friendly-name" type="Varchar" size="255">
					<lz:description>The Friendly Name of the object is it's real-world name.  Spaces and other punctuation is allowed, if applicable.  For example, the FriendlyName of the [DefaultSettings] object would be "Default Settings".</lz:description>
				</lz:field>
				<lz:field name="LogicalName" alias="logical-name" type="Varchar" size="255">
					<lz:description>The object's Logical Name is for use in object-oriented and object-based scenarios.  This would be used to identify the object in an ORM, UML or C# object model, for example.  The LogicalName defaults to the Name.</lz:description>
				</lz:field>
				<lz:field name="Filegroup" alias="filegroup" type="Varchar" size="255">
					<lz:description>The Filegroup specifies the physical storage container for the object.  It is generally used in Relational Database scenarios.</lz:description>
				</lz:field>
				<lz:field name="DBTable" alias="db-table" type="Varchar" size="255">
					<lz:description>The DBTable specifies the table name that an object is associated with.  This defaults to "tbl" plus the name of the object.</lz:description>
				</lz:field>
				<lz:field name="TitleField" alias="title-field" type="Varchar" size="255">
					<lz:description>Defines the column of the object that is used to identify a row to the user.  For example, the Company object might use the Name field as it's TitleField.</lz:description>
				</lz:field>
				<lz:field name="TypeTable" alias="type-table" type="Varchar" size="255">
					<lz:description>For objects that are part of Generalization Hierarchies, this specifies the table that contains the generalization hierarchy map.  This value is only valid for objects involved in a Generalization Hierarchy.</lz:description>
				</lz:field>
				<lz:field name="TypeField" alias="type-field" type="Varchar" size="255">
					<lz:description>For objects that are part of Generalization Hierarchies, this specifies the table that contains the generalization hierarchy map.</lz:description>
				</lz:field>
			</lz:fields>
			<lz:collections>
				<lz:collection name="Implements" object="Implement" />
				<lz:collection name="Flags" object="AttributeFlag" />
				<lz:collection name="Fields" object="Field" />
				<lz:collection name="Methods" object="Method" />
				<lz:collection name="Permissions" object="Permission" />
				<lz:collection name="Collections" object="Collection" />
				<lz:collection name="InitialData" object="DataRow" alias="initial-data" />
			</lz:collections>
		</lz:object>

		<lz:object name="AttributeFlag" alias="flag">
			<lz:description>Provides a custom name/value pair for defining metadata.  Currently supported on entities.</lz:description>
			<lz:fields>
				<lz:field name="Name" type="Varchar" size="255" required="true" />
				<lz:field name="Value" type="Varchar" size="255" required="true">
					<lz:description>Defines the value of the attribute in a string representation.  The attribute consumer is responsible for any typecasting of the named value.</lz:description>
				</lz:field>
			</lz:fields>
		</lz:object>
		
		<lz:object name="Implement" alias="implement">
			<lz:description>Defines an implementation of an existing object's definition.  This is expressed in OOP through inheritance, and in relational databases according to the DBMethod property.</lz:description>
			<lz:fields>
				<lz:field name="Ref" alias="ref" type="Varchar" size="255">
					<lz:description>Specifies an object who's definition will be extended.</lz:description>
				</lz:field>
				<lz:field name="DBMethod" alias="db-method" type="Varchar" size="255">
					<lz:description>Defines the inheritance behavior in Relational Databases.  A method of Aggregate will add the object's fields into the ancestor table, while a method of Category will create a Relational Category (type of) relationship between the ancestor and descendant.</lz:description>
				</lz:field>
			</lz:fields>
		</lz:object>

		<!-- End Object System -->
		
		<!-- Business View System -->
		<lz:object name="BusinessView" alias="businessview">
			<lz:description>Defines a contextual view of a single entity within the data definition.</lz:description>
			<lz:fields>
				<lz:field name="Context" type="Varchar" size="255" />
			</lz:fields>
			<lz:collections>
				<lz:collection name="Relations" object="Relation" />
				<lz:collection name="DataTables" object="DataTable" />
			</lz:collections>
		</lz:object>
		
		<lz:object name="DataTable" alias="datatable">
			<lz:description>Defines a Data Table within a Business View, bound to a single data entity.</lz:description>
			<lz:fields>
				<lz:field name="Ref" type="Varchar" size="255" />
				<lz:field name="Type" type="Varchar" size="255" />
			</lz:fields>
			<lz:collections>
				<lz:collection name="Columns" object="DataColumn" />
			</lz:collections>
		</lz:object>
		
		<lz:object name="DataColumn" alias="column">
			<lz:description>Defines a Data Column within a Data Table, bound to a single entity field.</lz:description>
			<lz:fields>
				<lz:field name="Ref" type="Varchar" size="255" />
			</lz:fields>
		</lz:object>
		
		<lz:object name="Relation" alias="relation">
			<lz:description>Defines a Relationship between two Data Tables.</lz:description>
			<lz:fields>
				<lz:field name="Source">
					<lz:indexes>
						<lz:index type="Foreign" object="RelationReference" />
					</lz:indexes>
				</lz:field>
				<lz:field name="Target">
					<lz:indexes>
						<lz:index type="Foreign" object="RelationReference" />
					</lz:indexes>
				</lz:field>
			</lz:fields>
		</lz:object>
		
		<lz:object name="RelationReference" alias="relationreference">
			<lz:description>Defines an entity reference within a relationship.</lz:description>
			<lz:fields>
				<lz:field name="Ref" type="Varchar" size="255" />
				<lz:field name="Cardinality" type="Varchar" size="255" />
			</lz:fields>
		</lz:object>
		<!-- End Business View System -->
		
		<!-- Package System -->
		<lz:object name="Package" alias="package" title-field="Name">
			<lz:description>Defines a container for methods that are non-contextual.</lz:description>
			<lz:collections>
				<lz:collection name="Methods" object="Method" />
			</lz:collections>
		</lz:object>
		<!-- End Package System -->
		
		<!-- Intersection System -->
		<lz:object name="Intersection" alias="intersection">
			<lz:description>Defines an intersection entity between two or more entities.</lz:description>
			<lz:fields>
				<lz:field name="Alias" alias="alias" type="Varchar" size="255" />
				<lz:field name="FriendlyName" alias="friendly-name" type="Varchar" size="255" />
				<lz:field name="LogicalName" alias="logical-name" type="Varchar" size="255" />
				<lz:field name="Filegroup" alias="filegroup" type="Varchar" size="255" />
			</lz:fields>
			<lz:collections>
				<lz:collection name="References" object="Reference" />
				<lz:collection name="Fields" object="Field" />
				<lz:collection name="Methods" object="Method" />
			</lz:collections>
		</lz:object>

		<lz:object name="Reference" alias="reference">
			<lz:description>Defines an intersection's reference to another object.</lz:description>
			<lz:fields>
				<lz:field name="Object" alias="object" type="Varchar" size="255" />
				<lz:field name="Accessor" alias="accessor" type="Varchar" size="255" />
				<lz:field name="Alias" alias="alias" type="Varchar" size="255" />
				<lz:field name="Cardinality" alias="cardinality" type="Varchar" size="255" />
			</lz:fields>
		</lz:object>
		<!-- End Intersection System -->

		<!-- Field System -->
		<lz:object name="Field" alias="field" title-field="Name">
			<lz:description>Defines field storage within an Object.</lz:description>
			<lz:fields>
				<lz:field name="Alias" alias="alias" type="Varchar" size="255">
					<lz:description>The Alias column defines the Field's name when used in an XML context.  It defaults to the lowercase representation of the field Name.</lz:description>
				</lz:field>
				<lz:field name="AutoGenerate" alias="autogenerate" required="true" type="Bit" default="false">
					<lz:description>Specifies whether or not the field is system-generated.  Valid DataTypes for AutoGenerate are: * INT, BIGINT: An IDENTITY column is created. * UNIQUEIDENTIFIER: The value is initialized as a new Guid in CREATE procedures. * DATETIME: The value is initialied to the current timestamp in CREATE procedures.</lz:description>
				</lz:field>
				<lz:field name="DataType" alias="type" type="Varchar" size="255">
					<lz:description>Specifies the DataType of the field.  Valid datatypes are: BigInt, Bit, DateTime, Decimal, Float, Identity, Int, Money, SmallInt, Text, Varchar, and Uniqueidentifier.</lz:description>
				</lz:field>
				<lz:field name="DefaultValue" alias="default" type="Varchar" size="255">
					<lz:description>Specifies the default value of the field in string representation.  The value must be covertable to the Field's DataType.</lz:description>
				</lz:field>
				<lz:field name="FriendlyName" alias="friendly-name" type="Varchar" size="255">
					<lz:description>The Friendly Name of the field is it's real-world name.  Spaces and other punctuation is allowed, if applicable.  For example, the FriendlyName of the [AutoGenerate] field might be "Auto-Generate Values".</lz:description>
				</lz:field>
				<lz:field name="ReadOnly" alias="readonly" required="true" type="Bit" default="false">
					<lz:description>Defines whether or not the field can be modified once created.  This is typically reserved for Auto-Generated values.  This defaults to false.</lz:description>
				</lz:field>
				<lz:field name="Required" alias="required" required="true" type="Bit" default="false">
					<lz:description>Defines whether the field is required to have a value or not.  This defaults to false.</lz:description>
				</lz:field>
				<lz:field name="Scale" alias="scale" type="Int">
					<lz:description>Defines the precision of a field's allowed value.  This is typically used with Float datatypes.</lz:description>
				</lz:field>
				<lz:field name="Size" alias="size" type="Int">
					<lz:description>Defines the maximum size of a field's allowed value.  This is typically used with Varchar values.</lz:description>
				</lz:field>
				<lz:field name="TableOnly" alias="tableonly" type="Bit" required="true" default="false">
					<lz:description>Specifies whether or not the field's visibility will be restricted to the physical database.  This is typically used for back-end logging, replication-related or autogenerated values.</lz:description>
				</lz:field>
				<lz:field name="LogicalName" alias="logical-name" type="Varchar" size="255">
					<lz:description>The field's Logical Name is for use in object-oriented and object-based scenarios.  This would be used to identify the field in an ORM, UML or C# object model, for example.  The LogicalName defaults to the Name.</lz:description>
				</lz:field>
			</lz:fields>
			<lz:collections>
				<lz:collection name="Constraints" object="Constraint" />
				<lz:collection name="Indexes" object="Index" />
			</lz:collections>
		</lz:object>
		
		<lz:object name="Constraint" alias="constraint">
			<lz:description>Defines a constraint on a field.  This limits the set of valid values.</lz:description>
			<lz:fields>
				<lz:field name="Modifier" type="Varchar" size="255">
					<lz:description>Specifies the type of constraint condition that will be checked.  Valid modifiers are Default (normal comparison) and Not (constraint operates on the negative of the comparison).</lz:description>
				</lz:field>
				<lz:field name="Operation" type="Varchar" size="255">
					<lz:description>Specifies the constraint operation that will be performed.  Valid Operations are: GreaterThan: ( &gt; ); GreaterThanOrEqual ( &gt;= ), LessThan ( &lt; ); LessThanOrEqual: ( &lt;= ); ExclusiveBetween: ( BETWEEN [min] AND [max] ); InclusiveBetween: ( ( &gt; [min] ) AND ( &lt; [max] ) ); Equal: ( == ); In: IN ( [values] );</lz:description>
				</lz:field>
				<lz:field name="Value" type="Varchar" size="255">
					<lz:description>Specifies a single, scalar value.  This property is used in Operations where a single value is being compared.  Ex: GreaterThan, Equal.</lz:description>
				</lz:field>
				<lz:field name="MinValue" alias="min-value" type="Varchar" size="255">
					<lz:description>Specifies a minimum value.  This property is used for exclusive and inclusive Between operations.</lz:description>
				</lz:field>
				<lz:field name="MaxValue" alias="max-value" type="Varchar" size="255">
					<lz:description>Specifies a maximum value.  This property is used for exclusive and inclusive Between operations.</lz:description>
				</lz:field>
			</lz:fields>
			<lz:collections>
				<lz:collection name="Values" alias="constraint-values" object="ConstraintValue">
					<lz:description>Specifies a list of values for the Constraint.  This collection is used for the In operation.</lz:description>
				</lz:collection>
			</lz:collections>
		</lz:object>
		
		<lz:object name="ConstraintValue" alias="constraint-value">
			<lz:description>Defines a particular value used in an IN operation of a Constraint.</lz:description>
			<lz:fields>
				<lz:field name="Value" type="Varchar" size="255">
					<lz:description>A single, scalar value.  The datatype rules for the value are determined by the field that is utilizing this constraint.</lz:description>
				</lz:field>
			</lz:fields>
		</lz:object>
		
		<lz:object name="Index" alias="index">
			<lz:description>Defines an index on a field.  This is used for PK determination, as well as database performance.</lz:description>
			<lz:fields>
				<lz:field name="Alias" alias="alias" type="Varchar" size="255">
					<lz:description>The Alias defines the index's name when used in a SQL context.  It defaults to the lowercase representation of the index Name.</lz:description>
				</lz:field>
				<lz:field name="Accessor" alias="accessor" type="Varchar" size="255">
					<lz:description>The Accessor is the name of the index appropriate to a logical context.  This would be used, for example, on a C# Object Model.</lz:description>
				</lz:field>
				<lz:field name="Object" alias="object" type="Varchar" size="255">
					<lz:description>This specifies the name of the object that the index is a reference to.  This is typically used when the Index Type is Foreign.</lz:description>
				</lz:field>
				<lz:field name="Type" alias="type" type="Varchar" size="255">
					<lz:description>Defines the Type of Index.  Valid Index Types are: * Clustered: The object rows are stored in this index's order.  This is typically used in a relational database scenario. * Primary: The index uniquely identifies a row. * Foreign: The index is a reference to a row in another object.</lz:description>
				</lz:field>
				<lz:field name="OwnerField" alias="ownerfield" type="Varchar" size="255">
					<lz:description>Unknown</lz:description>
				</lz:field>
				<lz:field name="Filegroup" alias="filegroup" type="Varchar" size="255">
					<lz:description>Specifies the physical storage name identifier for the index information.  This is typically used in a relational database scenario.</lz:description>
				</lz:field>
				<lz:field name="ConstraintName" type="Varchar" size="255">
					<lz:description>Specifies the name of the index constraint.  This is typically used with Foreign indexes in a relational database scenario.</lz:description>
				</lz:field>
				<lz:field name="CascadeDelete" alias="cascade-delete" type="Bit" required="true" default="false">
					<lz:description>Specifies whether or not to cascade deletes of related rows.  This is typically used with Foreign indexes in a relational database scenario.</lz:description>
				</lz:field>
			</lz:fields>
		</lz:object>
		<!-- End Field System -->
		
		<!-- Method System -->
		<lz:object name="Method" alias="method">
			<lz:description>Defines a method on an object.  Currently supported method types are Create, Update, Get, List and Custom.</lz:description>
			<lz:fields>
				<lz:field name="MethodType" alias="type" type="Varchar" size="255">	
					<lz:description>Defines an operation type for the method.  Valid Method Types are: * Create: A new instance of the object is created.  Parameters will be all fields, with auto-generating fields returned as output params. * Update: An existing instance of the object is modified.  The parameter will be the primary key value of the object. * Get: A single existing instance of the object is returned.  The parameter will be any unique key of the object. * List: A collection of existing object instances is returned.  The parameters may be specified to define filters for this list.</lz:description>
				</lz:field>
				<lz:field name="ObjectName" alias="object-name" type="Varchar" size="255">	
					<lz:description>Defines an the method's name when used as an object method (in OOP, Customer.Create).</lz:description>
				</lz:field>
				<lz:field name="DBName" alias="db-name" type="Varchar" size="255">	
					<lz:description>Defines an the method's name when used as a non-structured method (in SQL, CustomerCreate).</lz:description>
				</lz:field>
				<lz:field name="Filter" alias="filter" type="Varchar" size="255">
					<lz:description>Specifies a field to filter on.</lz:description>
				</lz:field>
			</lz:fields>
			<lz:collections>
				<lz:collection name="Permissions" object="Permission" />
				<lz:collection name="AffectedObjects" object="EffectObjectRef" alias="method-effects" />
				<lz:collection name="Filters" object="Filter" alias="method-filters" />
				<lz:collection name="Parameters" object="Parameter" alias="method-params" />
			</lz:collections>
		</lz:object>
		
		<lz:object name="Parameter" alias="method-param">
			<lz:description>Defines the parameters within a method.</lz:description>
			<lz:fields>
				<lz:field name="Direction" type="Varchar" size="255">
					<lz:description>Specifies the parameter direction.  Valid values are In and Out.</lz:description>
				</lz:field>
				<lz:field name="Type" type="Varchar" size="255">
					<lz:description>Specifies the parameter datatype.  Valid values are: BigInt, Bit, DateTime, Decimal, Float, Identity, Int, Money, SmallInt, Varchar, and Uniqueidentifier.</lz:description>
				</lz:field>
				<lz:field name="Scale" alias="scale" type="Int">
					<lz:description>Defines the precision of a parameter's allowed value.  This is typically used with Float datatypes in a database scenario.</lz:description>
				</lz:field>
				<lz:field name="Size" alias="size" type="Int">
					<lz:description>Defines the maximum size of a parameter's allowed value.  This is typically used with Varchar and Float datatypes in a database scenario.</lz:description>
				</lz:field>
			</lz:fields>
		</lz:object>
		
		<lz:object name="EffectObjectRef" alias="object-ref" title-field="Name">
			<lz:description>Defines the objects to be affected by a CREATE, UPDATE or CUSTOM method.</lz:description>
			<lz:fields>
				<lz:field name="EffectType" type="Varchar" size="255">
					<lz:description>Defines the type of effect being performed on the object.  For CUSTOM methods, this may be 'Create' or 'Update'.</lz:description>
				</lz:field>
				<lz:field name="Ref" type="Varchar" size="255">
					<lz:description>Defines the object that will be affected by the Create, Update or Custom method.</lz:description>
				</lz:field>
			</lz:fields>
			<lz:collections>
				<lz:collection name="Fields" object="Field" />
				<lz:collection name="Filters" object="Filter" alias="method-filters" />
			</lz:collections>
		</lz:object>
		
<!--		<lz:object name="Effect" alias="method-effect">
			<lz:description>Defines affected fields, and associated parameters, in CREATE and UPDATE methods..</lz:description>
			<lz:fields>
				<lz:field name="Field" type="Varchar" size="255" />
				<lz:field name="Param" type="Varchar" size="255" />
			</lz:fields>
		</lz:object>
-->
		<lz:object name="Filter" alias="method-filter">
			<lz:description>Defines any filters to be applied to the method processing.</lz:description>
			<lz:fields>
				<lz:field name="Field" type="Varchar" size="255">
					<lz:description>Specifies the field that the filter will be applied to.</lz:description>
				</lz:field>
				<lz:field name="Param" type="Varchar" size="255">
					<lz:description>Specifies the name of the parameter for the filter.</lz:description>
				</lz:field>
				<lz:field name="Value" type="Varchar" size="255">
					<lz:description>Specifies a value to apply to the filter.  This will act as a default to the parameter.</lz:description>
				</lz:field>
			</lz:fields>
		</lz:object>
		<!-- End Method System -->
		
		<!-- Collection System-->
		<lz:object name="Collection" alias="collection" title-field="Name">
			<lz:description>Defines a collection of a single type of entity (and it's descendants).</lz:description>
			<lz:fields>
				<lz:field name="Alias" type="Varchar" size="255">
					<lz:description>Defines the XML Element name for the collection.</lz:description>
				</lz:field>
				<lz:field name="BindingObject" alias="binding-object" type="Varchar" size="255">
					<lz:description>Specifies the Object that contains the collection references.  This will default to the Object, but should be specified if an Intersection is being used.</lz:description>
				</lz:field>
				<lz:field name="BindingField" alias="binding-field" type="Varchar" size="255">
					<lz:description>Specifies the FK value in the Binding Object that relates back to the current Collection.</lz:description>
				</lz:field>
				<lz:field name="Object" type="Varchar" size="255">
					<lz:description>Specifies what entity the collection is comprised of.</lz:description>
				</lz:field>
			</lz:fields>
		</lz:object>
		<!-- End Collection System -->
		
		<!-- Initial Data System -->
		<lz:object name="DataRow" alias="data-row">
			<lz:description>Defines a set of data used for Initial Data processing.</lz:description>
			<lz:collections>
				<lz:collection name="DataValues" object="DataValue" alias="data-values" />
			</lz:collections>
		</lz:object>
		
		<lz:object name="DataValue" alias="data-value">
			<lz:description>Defines a value within a DataRow for a specific Field.</lz:description>
			<lz:fields>
				<lz:field name="Field" type="Varchar" size="255" required="true">
					<lz:description>Specifies the field where the value is stored.</lz:description>
				</lz:field>
				<lz:field name="Value" type="Varchar" size="4000" required="true">
					<lz:description>Specifies the string representation of the value.</lz:description>
				</lz:field>
			</lz:fields>
		</lz:object>
		<!-- End Initial Data System -->
		
	</lz:objects>
	<lz:intersections>
		
	</lz:intersections>
	
</lz:project>